<?php
/**
 * Klass för presentation av loginsida samt hantering av indata från formulär.
 */
class LoginView{
	private $getUsernameKey = 'username';
	private $getPasswordKey = 'password';
	private $getLoginKey = 'login';
	private $getLogoutKey = 'logout';
	private $getRememberKey = 'remember';
	//Kontrollerar så att variablen $_POST['username'] inte är tom och returnerar denna
	//annars returneras NULL
	public function GetUserName(){
		if(!empty($_POST[$this->getUsernameKey])){
			return $_POST[$this->getUsernameKey];
		}
		return null;
	}
	//Kontrollerar så att variablen $_POST['password'] inte är tom och returnerar denna
	//annars returneras NULL
	public function GetPassword(){
		if(!empty($_POST[$this->getPasswordKey])){
			return $_POST[$this->getPasswordKey];
		}
		return null;
	}
	public function GetRememberToken(){
		if(isset($_COOKIE[$this->getRememberKey])){
			return $_COOKIE[$this->getRememberKey];
		}
		return null;
	}
	//Returnerar true eller false baserat på om $_POST['login'] är satt
	public function TriedToLogIn(){
		if(isset($_POST[$this->getLoginKey])){
			return true;
		}
		return false;
	}
	//Returnerar true eller false baserat på om $_POST['logout'] är satt
	public function TriedToLogOut(){
		if(isset($_POST[$this->getLogoutKey])){
			return true;
		}
		return false;
	}
	//Returnerar true eller false baserat på om $_POST['remember'] är satt
	public function IsRemember(){
		if(isset($_POST[$this->getRememberKey])){
			return true;
		}
		return false;		
	}
	//Sätter en cookie för användaren som håller den inloggad i en timme framåt
	public function RememberMe($token){
		$oneDay = 24*3600;
		setcookie($this->getRememberKey, $token, time()+$oneDay);
	}
	public function RemoveRemember(){
		$oneDay = 24*3600;
		setcookie($this->getRememberKey, "", time()-$oneDay);
	}
	public function DoUserMessageFlash($username = null){
		return (!empty($username) && $username != null) ? "<div id='user_info'>
																Welcom, ".$username."	
															</div>" 
															: NULL;
	}
	public function DoLoginBoxFlash($message) {
		return (!empty($message)) ? "<div id='error'>$message</div>" : NULL;
	}
	//Returnerar HTML kod för loginformulär
	public function DoLoginBox($loginOutput = "", $userIsLoggedin = false){
		if(!$userIsLoggedin){
			return "<form method='POST' action=''>
							<div>
								<h2>Login</h2>
								".$this->DoLoginBoxFlash($loginOutput)."
								<div> 
									<div style='width:200px;'>
										Username:
									</div> 
									<div style='width:200px;'>
										<input type='text' name='$this->getUsernameKey' value='' /> 
									</div>
								</div> 
								<div> 
									<div style='width:200px;'>
										Password: 
									</div>
									<div style='width:200px;'>	
										<input type='password' name='$this->getPasswordKey' value='' /> 
									</div>
								</div> 
								<div>
									Remember me: <input type='checkbox' name='$this->getRememberKey' value='remember' />
								</div>
								<div>
									<input type='submit' name='$this->getLoginKey' value='Login' />
								</div>
							</div>
						</form>";			
		}
		else{
			return "<form method='POST' action=''>
							".$this->DoUserMessageFlash($loginOutput)."
							<div>
								<input type='submit' name='$this->getLogoutKey' value='Sign out' />
							</div>
						</form>";			
		}
	}

}
?>